/**业务管理流程平台版本1.0,生成时间:2017-04-13 13:16:48**/
package com.xbdun.service.bmp.biz;

import java.util.Map;

import com.xbdun.common.api.Client;
import com.xbdun.common.exceptions.BizException;
import com.xbdun.common.page.Pager;
import com.xbdun.dao.bmp.entity.XbdunSysOrgDo;
import com.xbdun.facade.bmp.response.system.SysOrgResponse;


/**
 * 企业信息
 * @ClassName XbdunSysOrgService
 * @author 张国涛
 * @2017-04-13 13:16:48
 */
public interface SysOrgBiz {
	
	/**
	 * 根据orgCode
	 */
	public XbdunSysOrgDo getSysOrgByOrgCode(long orgCode)throws RuntimeException;
	
	/**
	 * 新增
	 * @param XbdunSysOrgDo 
	 */
	public Long addXbdunSysOrg(XbdunSysOrgDo xbdunSysOrgDo)throws RuntimeException;
	
	/**
	 * 删除数据XbdunSysOrgDo根据主键
	 * @param id 主键
	 */
	public void delXbdunSysOrgById(long id)throws RuntimeException;
	
	/**
	 * 更新对象属性
	 * @param xbdunSysOrgDo	更新对象
	 * @param client		客户端
	 */
	public void updateOrgInfo(XbdunSysOrgDo xbdunSysOrgDo,Client client)throws RuntimeException;
	
	/**
	 * 查询分页
	 * @param where			约束条件,键是对象属性其中条件都为and连接
	 * @param orderBy		排序条件
	 * @param pageNum   	当前索引页
	 * @param numPerPage	每页显示条数
	 * @return {@link Pager}
	 * @throws RuntimeException
	 */
	public Pager<SysOrgResponse> queryPager(Map<String,Object> where,String orderBy,int pageNum,int numPerPage);


	/**
	* @Title: existSysOrg
	* @Description: 判断企业/email/备案号是否存在
	* @param xbdunUserInfoDo
	* @throws RuntimeException    设定文件
	* int    返回类型
	* @throws
	 */
	public int existSysOrg(XbdunSysOrgDo xbdunSysOrgDo)throws RuntimeException;
	
	/**
	* @Title: modifyAgentOrg
	* @Description: 设置代理机构,前提机构必须是已经通过了审核才能够设置
	* @param orgCode		  机构编号
	* @param blAgentOrg		 是否代理	是【1】，不是【2】
	* @throws BizException    异常
	* @return void    返回类型
	 */
	public void modifyAgentOrg(long orgCode,int blAgentOrg)throws RuntimeException;
	
	/**
	* @Title: getAgentOrgCode
	* @Description 获取代理机构编号
	* @return Long    返回类型
	*/
	public Long getAgentOrgCode() throws Exception;

	/**
	* @Title: getOrgById
	* @Description 获取当前机构
	* @return XbdunSysOrgDo    返回类型
	*/
	public XbdunSysOrgDo getOrgById(long id) throws Exception;

	/**
	 * @Title: auditingSysOrg
	 * @Description: 审核机构
	 * @param xbdunSysOrgDo
	 * @param client
	 */
	public long auditingSysOrg(XbdunSysOrgDo xbdunSysOrgDo, Client client) throws Exception;

}